{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 简单线性回归\n",
    "## 数据预处理"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "matplotlib是python上的一个2D绘图库, matplotlib下的模块pyplot是一个有命令样式的函数集合， matplotlib.pyplot是为我们对结果进行图像化作准备的。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import sklearn"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "导入相关数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    Hours  Scores\n",
      "0     2.5      21\n",
      "1     5.1      47\n",
      "2     3.2      27\n",
      "3     8.5      75\n",
      "4     3.5      30\n",
      "5     1.5      20\n",
      "6     9.2      88\n",
      "7     5.5      60\n",
      "8     8.3      81\n",
      "9     2.7      25\n",
      "10    7.7      85\n",
      "11    5.9      62\n",
      "12    4.5      41\n",
      "13    3.3      42\n",
      "14    1.1      17\n",
      "15    8.9      95\n",
      "16    2.5      30\n",
      "17    1.9      24\n",
      "18    6.1      67\n",
      "19    7.4      69\n",
      "20    2.7      30\n",
      "21    4.8      54\n",
      "22    3.8      35\n",
      "23    6.9      76\n",
      "24    7.8      86\n",
      "25    2.1      93\n",
      "26    2.2      93\n",
      "27    2.5      93\n"
     ]
    }
   ],
   "source": [
    "dataset = pd.read_csv('../datasets/studentscores.csv') \n",
    "print(dataset)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "iloc与loc在实际使用细则上有一点区别，可以自行查找。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[2.5]\n",
      " [5.1]\n",
      " [3.2]\n",
      " [8.5]\n",
      " [3.5]\n",
      " [1.5]\n",
      " [9.2]\n",
      " [5.5]\n",
      " [8.3]\n",
      " [2.7]\n",
      " [7.7]\n",
      " [5.9]\n",
      " [4.5]\n",
      " [3.3]\n",
      " [1.1]\n",
      " [8.9]\n",
      " [2.5]\n",
      " [1.9]\n",
      " [6.1]\n",
      " [7.4]\n",
      " [2.7]\n",
      " [4.8]\n",
      " [3.8]\n",
      " [6.9]\n",
      " [7.8]\n",
      " [2.1]\n",
      " [2.2]\n",
      " [2.5]]\n",
      "[21 47 27 75 30 20 88 60 81 25 85 62 41 42 17 95 30 24 67 69 30 54 35 76\n",
      " 86 93 93 93]\n"
     ]
    }
   ],
   "source": [
    "X = dataset.iloc[ : , :1].values\n",
    "Y = dataset.iloc[ : , 1].values\n",
    "print(X)\n",
    "print(Y)\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 拆分数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[3.3]\n",
      " [2.7]\n",
      " [2.1]\n",
      " [2.5]\n",
      " [5.1]\n",
      " [7.7]\n",
      " [2.5]\n",
      " [2.2]\n",
      " [8.3]\n",
      " [9.2]\n",
      " [3.5]\n",
      " [6.1]\n",
      " [7.4]\n",
      " [2.7]\n",
      " [5.5]\n",
      " [6.9]\n",
      " [8.5]\n",
      " [2.5]\n",
      " [4.8]\n",
      " [8.9]\n",
      " [4.5]]\n",
      "[[3.2]\n",
      " [3.8]\n",
      " [1.1]\n",
      " [1.9]\n",
      " [1.5]\n",
      " [5.9]\n",
      " [7.8]]\n",
      "[42 30 93 30 47 85 93 93 81 88 30 67 69 25 60 76 75 21 54 95 41]\n",
      "[27 35 17 24 20 62 86]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, Y_train, Y_test = train_test_split( X, Y, test_size = 1/4, random_state = 0) \n",
    "print(X_train)\n",
    "print(X_test)\n",
    "print(Y_train)\n",
    "print(Y_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 训练线性回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "regressor = LinearRegression()\n",
    "regressor = regressor.fit(X_train, Y_train) #利用测试数据训练回归集"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 预测结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#散点图\n",
    "plt.scatter(X_train, Y_train, color = 'red')\n",
    "#直线图\n",
    "plt.plot(X_train, regressor.predict(X_train),'bo-')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X_test, Y_test, color = 'red')\n",
    "plt.plot(X_test, regressor.predict(X_test),'bo-')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
